package com.api.utils;

import java.io.File;
import java.text.DateFormat;
import java.text.NumberFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

/**
 * 帮助工具
 * 
 * @author Administrator
 *
 */
public class HelperUtils {

	/**
	 * 计算百分比
	 * 
	 * @param num1
	 * @param num2
	 * @return
	 */
	public static String num_percent(int num1, int num2) {
		NumberFormat numberFormat = NumberFormat.getInstance();
		numberFormat.setMaximumFractionDigits(2);
		String result = numberFormat.format((float) num1 / (float) num2 * 100);
		return result + "%";
	}

	/**
	 * 获取当前时间
	 * 
	 * @param date
	 * @return
	 */
	public static String getNowData(Date date) {
		DateFormat df = DateFormat.getDateTimeInstance(DateFormat.MEDIUM, DateFormat.MEDIUM, Locale.CHINESE);
		return df.format(date);
	}

	/**
	 * 获取文件名
	 * 
	 * @return
	 */
	public String[] getFileName() {
		ArrayList<Object> arrayList = (ArrayList<Object>) getFileList();
		String array[] = new String[arrayList.size()];
		for (int i = 0, j = arrayList.size(); i < j; i++) {
			array[i] = "datafile/" + (String) arrayList.get(i);
		}
		return array;
	}

	/**
	 * 获取excel文件
	 * 
	 * @return
	 */
	public List<Object> getFileList() {
		File directory = new File("");// 设定为当前文件夹
		List<File> files = getFiles(directory.getAbsolutePath() + "/datafile");// 获取绝对路径
		List<Object> list = new ArrayList<Object>();
		// 该文件目录下文件全部放入数组
		for (File f : files) {
			if (f.getName().endsWith(".xlsx")) {
				list.add(f.getName());
			}
		}
		return list;
	}

	public static List<File> getFiles(String path) {
		File root = new File(path);
		List<File> files = new ArrayList<File>();
		if (!root.isDirectory()) {
			files.add(root);
		} else {
			File[] subFiles = root.listFiles();
			for (File f : subFiles) {
				files.addAll(getFiles(f.getAbsolutePath()));
			}
		}
		return files;
	}

	public static String assertResult(String Result_expected, String Result_actual) {
		if (Result_actual.contains(Result_expected)) {
			return "TRUE";
		} else {
			return "FALSE";
		}
	}

	/**
	 * 保留三位小数，四舍五入
	 * 
	 * @param d
	 * @return
	 */
	public static String formatDouble(double d) {
		NumberFormat nf = NumberFormat.getNumberInstance();
		// 保留3位小数
		nf.setMaximumFractionDigits(3);
		return nf.format(d);
	}
}
